
package com.jf.cloud.multishop.mapper;

import com.jf.cloud.multishop.model.ShopCollection;
import com.jf.cloud.multishop.vo.ShopCollectionVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户店铺收藏记录
 *
 * @author zz
 * @date 2021-02-23 14:41:42
 */
public interface ShopCollectionMapper {

    /**
     * 根据用户店铺收藏记录id获取用户店铺收藏记录
     *
     * @param collectionId 用户店铺收藏记录id
     * @return 用户店铺收藏记录
     */
    ShopCollectionVO getByCollectionId(@Param("collectionId") Long collectionId);

    /**
     * 保存用户店铺收藏记录
     * @param userCollectionShop 用户店铺收藏记录
     */
    void save(@Param("userCollectionShop") ShopCollection userCollectionShop);

    /**
     * 更新用户店铺收藏记录
     * @param userCollectionShop 用户店铺收藏记录
     */
    void update(@Param("userCollectionShop") ShopCollection userCollectionShop);

    /**
     * 根据用户id获取收藏店铺分页列表
     * @param userId 用户id
     * @param shopName 店铺名称
     * @return 分页列表
     */
    List<ShopCollectionVO> listUserCollectionShopPageByUserIdAndShopName(@Param("userId") Long userId, @Param("shopName") String shopName);

    /**
     * 根据用户id和店铺id获取收藏数量
     * @param userId 用户id
     * @param shopId 店铺id
     * @return 收藏数量
     */
    int countByShopIdAndUserId(@Param("shopId") Long shopId, @Param("userId") Long userId);

    /**
     * 根据用户id和店铺id删除用户店铺收藏记录
     * @param shopId 店铺id
     * @param userId 用户id
     * @return 删除结果
     */
    boolean deleteByShopIdAndUserId(@Param("shopId") Long shopId, @Param("userId") Long userId);
}
